import re

# search: 在整个字符串中查找，返回第一个满足模式的字符串

doc = "我叫覃笑，我的年龄是28,我的身高180"

# (): 将匹配到的文本放到一个组内，可以方便获取文本
name = re.search("叫(.+)，", doc)
# 通过顺序获取匹配到的文本
print(name.group(1))

age = re.search("年龄是(\d+)", doc)
print(age.group(1))

length = re.search("身高(\d+)", doc)
print(length.group(1))

# match: 从字符串开头匹配，如果没有匹配到返回None
phone = "我的手机号17600195922 # 这里一个手机号"
p = re.match("\d+", phone)
print(p)

# findall: 从字符串中查找所有满足条件的字符串,返回一个列表
info = "java大数据,123,hadoop,python"

words = re.findall("[a-z]+", info)
print(words)

doc = "姓名=张三，年龄=23,性别=男"

name = re.search("姓名=(.+)，", doc)
print(name.group(1))

# split: 使用正则表达式分割字符串
info = "java,python\t大数据|hadoop"

split = re.split("[,\t|]", info)
print(split)

# sub:替换字符串
info = "java,python\t大数据|hadoop"

sub = re.sub("[,\t|]", ",", info)
print(sub)

doc = "姓名=张三,年龄=23,性别=男"
# 在+号后面加上？代表最小匹配
name = re.search("姓名=(.+?),", doc)
print(name.group(1))

# ^: 匹配开始 $: 匹配结束


phone = "17600195922 # 这里一171231231232个手机号，17612312312"

# 从前面匹配
f1 = re.findall("^\d+", phone)
print(f1)

f2 = re.findall("\d+$", phone)
print(f2)

# 判断是不是一个手机号
phone = "17600195922"

m = re.match("^\d{11}$",phone)
print(m)